home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Games Collection 1
/
software vault.zip
/
software vault
/
CDR10
/
MAPEDIT.ZIP
/
CHAR.C
next >
Wrap
C/C++ Source or Header
|
1993-04-02
|
10KB
|
336 lines
#include "paint.h"
edit_pix(int x,int y)
{
unsigned int loop,loop2;
char cep[128],tep[128];
char temps[40];
static int cx = 5;
static int cy = 5;
int mousex,mousey,mouseon,getcolor=0;
for(loop=0;loop<64000;loop++)
{
*(scrptr+loop)=0;
}
for(loop=0;loop<10;loop++)
{
block(loop,0,1);
block(0,loop,1);
block(9,loop,1);
block(loop,9,1);
}
show_sprite(0,0,"charbox");
show_pal();
show_colors();
btc(x,y,cep);
bigchar(cep);
showcts(cep);
for(loop=0;loop<5;loop++)
{
for(loop2=0;loop2<5;loop2++)
{
btc(loop+x-2,loop2+y-2,tep);
cts(loop+23,loop2+2,tep);
}
}
mouseon=0;
show_sprite(0,80,"editmenubar");
for(;;)
{
mousex=mousecol();
mousey=mouserow();
sprintf(temps,"X: %3d Y: %3d",mousex,mousey);
put_edit_sline(0,temps);
if(mousex >183 && mousex<224 &&mousey>15 && mousey<56)
{
if(mouseon)
{
mouseon=0;
mousecursor(0);
}
vwait();
block(mousex/8,mousey/8,0);
vwait();
block(mousex/8,mousey/8,1);
if(mousebuttons())
{
ctb(x,y,cep);
x=x+mousex/8-23-2;
y=y+mousey/8-2-2;
if(x<0)x=0; if(y<0)y=0;
if(x>39)x=39; if(y>24)y=24;
btc(x,y,cep);
bigchar(cep);
showcts(cep);
for(loop=0;loop<5;loop++)
{
for(loop2=0;loop2<5;loop2++)
{
btc(loop+x-2,loop2+y-2,tep);
cts(loop+23,loop2+2,tep);
}
}
btc(mousex/8-23+x-2,(mousey/8-2-2+y),tep);
cts(mousex/8,mousey/8,tep);
if(mousebuttons()==1)
while(mousebuttons());
}
vwait();
btc(mousex/8-23+x-2,(mousey/8-2-2+y),tep);
cts(mousex/8,mousey/8,tep);
}
if(mousey<80)
{ /* above menu bar */
if(mouseon)
{
mouseon=0;
mousecursor(0);
}
vwait();
cross(mousex,mousey,0,80);
vwait();
cross(mousex,mousey,0,80);
if(mousey<72 && mousey >7 && mousex > 7 && mousex < 72)
{
/* in edit box */
vwait();
block(mousex/8,mousey/8,0);
vwait();
block(mousex/8,mousey/8,1);
if(mousebuttons())
{
if(getcolor)
{
switch(mousebuttons())
{
case 1:
lcol=cep[mousex/8-1+(mousey/8-1)*8];
break;
case 4:
mcol=cep[mousex/8-1+(mousey/8-1)*8];
break;
case 2:
rcol=cep[mousex/8-1+(mousey/8-1)*8];
break;
}
getcolor=0;
show_colors();
show_sprite(0,80,"editmenubar");
}
else
{
switch(mousebuttons())
{
case 1:
cep[mousex/8-1+(mousey/8-1)*8]=lcol;
break;
case 4:
cep[mousex/8-1+(mousey/8-1)*8]=mcol;
break;
case 2:
cep[mousex/8-1+(mousey/8-1)*8]=rcol;
break;
}
showcts(cep);
}
}
vwait();
block(mousex/8,mousey/8,cep[mousex/8-1+(mousey/8-1)*8]);
}
}
else if (mousey<11*8 && !getcolor)
{
/* on menu bar */
if(!mouseon)
{
mouseon=1;
mousecursor(1);
}
if(mousebuttons())
{
if(mousex>=0 && mousex<20)
{
show_sprite(0,80,"done");
ctb(x,y,cep);
waitup();
show_sprite(0,80,"editmenubar");
mousecursor(0);
return;
}
if(mousex>20 && mousex<44)
{
show_sprite(21,80,"abort");
waitup();
show_sprite(0,80,"editmenubar");
mousecursor(0);
return;
}
if(mousex>227)
{
show_sprite(228,80,"blank2");
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>148 && mousex < 186)
{
show_sprite(149,80,"getcolor");
waitup();
show_sprite(0,80,"pickcopyfrom");
getcolor=1;
}
if(mousex>44 && mousex<76)
{
show_sprite(45,80,"reverse");
reverse(cep);
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>126 && mousex<137)
{
show_sprite(127,80,"rotup");
up(cep);
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>137 && mousex<148)
{
show_sprite(138,80,"rotdown");
down(cep);
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>100 && mousex<113)
{
show_sprite(101,80,"rotleft");
left(cep);
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>113 && mousex<126)
{
show_sprite(114,80,"rotright");
right(cep);
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
if(mousex>76 && mousex<100)
{
show_sprite(77,80,"clear");
switch(mousebuttons())
{
case 1:
memset(cep,lcol,64);
break;
case 4:
memset(cep,mcol,64);
break;
case 2:
memset(cep,rcol,64);
break;
}
bigchar(cep);
showcts(cep);
waitup();
show_sprite(0,80,"editmenubar");
}
}
}
else
{
/* below menu bar */
if(mouseon)
{
mouseon=0;
mousecursor(0);
}
vwait();
cross(mousex,mousey,88,200);
vwait();
cross(mousex,mousey,88,200);
if(what_color(mousex,mousey)>-1)
{
vwait();
block(mousex/8,mousey/8,0);
vwait();
block(mousex/8,mousey/8,1);
vwait();
block(mousex/8,mousey/8,what_color(mousex,mousey));
switch(mousebuttons())
{
case 0:
break;
case 1:
lcol=what_color(mousex,mousey);
break;
case 4:
mcol=what_color(mousex,mousey);
break;
case 2:
rcol=what_color(mousex,mousey);
break;
}
if(mousebuttons())
show_colors();
}
}
}
}
showcts(char *upd)
{
int loop,loop2;
cts(25,4,upd);
for(loop=0;loop<8;loop++)
{
cts(loop+19,9,upd);
cts(17,loop+1,upd);
for(loop2=0;loop2<8;loop2++)
cts(loop+32,loop2+1,upd);
}
}
fblock(int x,int y,unsigned char color)
{
int loop,loop2;
for(loop=0;loop<8;loop++)
{
for(loop2=0;loop2<8;loop2++)
{
*(scrptr+(y+loop)*320+x+loop2)=color;
}
}
}
show_colors()
{
fblock(109,13,lcol);
fblock(109,36,mcol);
fblock(109,59,rcol);
}
put_edit_sline(int x,char *string)
{
int loop,loop2;
for(loop=0;loop<strlen(string);loop++)
for(loop2=0;loop2<8;loop2++)
memcpy(scrptr+(loop+x)*8+(loop2+96)*320,csptr[*(string+loop)][loop2],8);
}